// 使用 class 关键字定义一个类

/**
 * 对象中主要包含了两个部分：
 * 属性
 * 方法
 */
class Person {
  // 定义实例属性
  // readonly name: string = "jerry";
  // age: number = 18;
  readonly name = "jerry";
  age = 18;

  // 在属性前使用 static 关键字可以定义类属性（静态属性）
  static readonly region: string = "CN";

  // 定义方法
  static sayHi() {
    console.log("hi");
  }
}

const p = new Person();

// p.name = "tom";// error
p.age = 19;
console.log(p);
// p.sayHi();// error
// Person.region = "US";// error
Person.sayHi();
console.log(Person.region);
